为什么程序正确,结果不对?

社区

C语言 帖子详情 为什么程序正确,结果不对? jingjinghunan 2009-02-02 10:30:24 #define YES 1

#define NO 0

main()

{int nl,nw,nc,inword;

char c;

inword=NO;

nl=nw=nc=0;

while(c=getchar()!='*')

{++nc;

if(c=='\n')

++nl;

if(c==' '||c=='\t'||c=='\n')

inword=NO;

else

if(inword==NO)

{inword=YES;

++nw;

}

}

nc--;

printf("%d %d %d\n",nl,nw,nc);

}

输入

How are you?

I'm fine thank you.

*

输出结果:

2 7 32

但我运行的结果却是0 0 32

...全文

202 8 打赏 收藏 为什么程序正确,结果不对? #define YES 1 #define NO 0 main() {int nl,nw,nc,inword; char c; inword=NO; nl=nw=nc=0; while(c=getchar()!='*') {++nc; if(c=='\n') ++nl; if(c==' '||c=='\t'||c=='\n') inword=NO; else if(inword==NO) {inword=YES; ++nw; } } nc--; printf("%d %d %d\n",nl,nw 复制链接

扫一扫 分享 转发到动态 举报 AI 作业

写回复 配置赞助广告取 消

确 定

用AI写文章 8 条回复 切换为时间正序 请发表友善的回复… 发表回复 打赏红包 需支付: 0.00 元 取 消 确 定 jingjinghunan 2009-02-03 打赏举报 回复 还是一样的结果啊 从零开始学代码 2009-02-02 打赏举报 回复

#include

#include

#define YES 1

#define NO 0

main()

{

int nl,nw,nc,inword;

char c;

inword=NO;

nl=nw=nc=0;

/* Note that getchar reads from stdin and

is line buffered; this means it will

not return until you press *. */

while((c=getchar())!='*')

{

++nc; //number of characters

if(c=='\n')

{

++nl;//number of lines

}

if(c==' '||c=='\t'||c=='\n')

{

inword=NO;

}

else

{

if(inword==NO)

{

inword=YES;

++nw; //number of words

}

}

}

nc--;

printf("%d %d %d\n",nl,nw,nc);

return 0;

}

xidianxiancai 2009-02-02 打赏举报 回复 将while(c=getchar()!='*') 换成while((c=getchar()) != '*') 就OK了 xidianxiancai 2009-02-02 打赏举报 回复 将while(c=getchar()!='*') 换成while((c=getchar()) != '*') 就OK了 waizqfor 2009-02-02 打赏举报 回复 [Quote=引用楼主 jingjinghunan 的帖子:]

#define YES 1

#define NO 0

main()

{int nl,nw,nc,inword;

char c;

inword=NO;

nl=nw=nc=0;

while(c=getchar()!='*')

{++nc;

if(c=='\n')

++nl;

if(c==' '||c=='\t'||c=='\n')

inword=NO;

else

if(inword==NO)

{inword=YES;

++nw;

}

}

nc--;

printf("%d %d %d\n",nl,nw,nc);

}

输入

How are you?

I'm fine thank you.

*

输出结果:

2 7 32

但我运行的结果却是0 0 32

[/Quote]

LZ帮你改完了 看看运行一下

#define YES 1

#define NO 0

#include

#include

void main()

{int nl,nw,nc,inword;

char c;

inword=NO;

nl=nw=nc=0;

while((c=getchar())!='*')

{++nc;

if(c=='\n')

++nl;

if(c==' '||c=='\t'||c=='\n')

inword=NO;

else

if(inword==NO)

{inword=YES;

++nw;

}

}

nc--;

printf("%d %d %d\n",nl,nw,nc);

}

yuzl32 2009-02-02 打赏举报 回复

//关系运算符的优先级比赋值运算符高,所以要用括号来避免

while((c=getchar())!='*')

叶落寒山 2009-02-02 打赏举报 回复

while((c=getchar())!='*')

nullah 2009-02-02 打赏举报 回复 up 【C语言初阶】 为什么我的两个整数加起来结果不对?原来是你,整型提升~ 上一次我们说过了浮点数在内存中的存储规则和形式。我们知道了C语言中,所有...有符号整数的二进制形式,首位为符号位(0表示正数,1表示负数)。 正整数的三种二进制形式关系为: 原码 == 反码 == 补码 例: 10:原 为什么在Eclipse中,运行一个程序时却出现另一个程序的结果? 那这是为什么呢?现在我用实例来帮大家解决。 问题描述: 现在我们自己有两个简单的文本输出程序,我运行程序1得到的结果为“Hello World” 接下来运行第二个healt1的程序,结果如下: 可见我们在运行程序2时,... tcpdump过滤特定IP的数据包,结果不对? 项目中自己需要写个程序通过pcap-filter表达式过滤数据包,测试时发现过滤结果不对!现将问题简化如下(以tcpdump举例) if判断的时候,程序不报错,但输出结果不对 if判断的时候,程序不报错,但输出结果不对 其中的一个可能的原因是:判断语句中少加了等号 如:if (a= b),这样不报错,但结果不对。 应该是if(ab)。 赋值(=),等于()。 ... matlab同一个代码结果不同,为什么当我使用相同的表达式定义函数时,matlab内置函数的结果与我得到的结果不同?... (https://www.mathworks.com/help/signal/ref/hamming.html)为了进一步分析相同的信号,但是我遇到了一些不寻常的问题,当我使用内置函数Hamming(L)时得到...,当我用Matlab中定义的相同方式编写函数时得到了正确的结果...

C语言

70,019

社区成员

243,266

社区内容

发帖 与我相关 我的任务 C语言 C语言相关问题讨论 复制链接

扫一扫 分享 确定 社区描述 C语言相关问题讨论 社区管理员

加入社区

获取链接或二维码

近7日

近30日

至今

加载中

查看更多榜单

社区公告

暂无公告 试试用AI创作助手写篇文章吧

+ 用AI写文章

友情链接